package com.ddtech.framework.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ddtech.framework.system.service.dto.DeptDTO;
import com.ddtech.framework.vo.DeptVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/***
 *
 * 描述：部门接口
 * 作者： 普斌
 * 日期： 2020/2/8 15:18
 */
@Mapper
public interface DeptVoMapper  {
    /**
     * 获取部门
     * @param Id
     * @return
     */
    DeptVo findDeptById(String Id);

    /**
     * 获取当前部门的父部门与子部门
     */

    List<DeptVo> findDeptFamily(String deptId);


    IPage<DeptVo> findDeptByType(@Param("page") Page page, @Param("deptType") String deptType);

    /**
     * 查询子部门
     * @return
     */
    List<DeptVo> findSubDeptByIdAndType(@Param("deptId") String deptId, @Param("deptType") List<String> deptType);

    /**
     * 查询子部门,分页查询,并更具部门名称搜索
     * @param page
     * @param deptId
     * @param deptType
     * @param name
     * @return
     */
    IPage<DeptVo> findSubDeptByCondition(@Param("page") IPage page, @Param("deptId") String deptId, @Param("deptType") List<String> deptType, @Param("name") String name);


    /**
     * 查询父部门
     */
    List<DeptVo> findParDeptByIdAndType(@Param("deptId") String deptId, @Param("deptType") List<String> deptType);


    /**
     *获取当前部门和子部门（传入业务部门ID）
     */
    List<DeptVo>  findDeptAndSub(@Param("deptId") String deptId);


    /**
     * 专家库树目录
     * @param deptId
     * @return
     */
    List<DeptDTO> findExpertDept(@Param("deptId") String deptId);


}
